package com.honghe.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.honghe.common.annotation.Excel;
import com.honghe.common.annotation.Excel.ColumnType;
import com.honghe.common.core.domain.BaseEntity;

/**
 * 员工打卡记录对象 sys_attendance
 * 
 * @author honghe
 */
public class SysAttendance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 打卡ID */
    @Excel(name = "打卡序号", cellType = ColumnType.NUMERIC)
    private Long attendanceId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;
    
    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;
    
    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;
    
    /** 部门ID */
    private Long deptId;

    /** 打卡日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "打卡日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date attendanceDate;

    /** 签到时间 */
    @Excel(name = "签到时间")
    private String clockInTime;

    /** 签到地点 */
    @Excel(name = "签到地点")
    private String clockInLocation;

    /** 签退时间 */
    @Excel(name = "签退时间")
    private String clockOutTime;

    /** 签退地点 */
    @Excel(name = "签退地点")
    private String clockOutLocation;

    /** 状态（0正常 1异常） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=异常")
    private String status;

    public void setAttendanceId(Long attendanceId) 
    {
        this.attendanceId = attendanceId;
    }

    public Long getAttendanceId() 
    {
        return attendanceId;
    }
    
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    
    public void setDeptName(String deptName) 
    {
        this.deptName = deptName;
    }

    public String getDeptName() 
    {
        return deptName;
    }
    
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    
    public void setAttendanceDate(Date attendanceDate) 
    {
        this.attendanceDate = attendanceDate;
    }

    public Date getAttendanceDate() 
    {
        return attendanceDate;
    }
    
    public void setClockInTime(String clockInTime) 
    {
        this.clockInTime = clockInTime;
    }

    public String getClockInTime() 
    {
        return clockInTime;
    }
    
    public void setClockInLocation(String clockInLocation) 
    {
        this.clockInLocation = clockInLocation;
    }

    public String getClockInLocation() 
    {
        return clockInLocation;
    }
    
    public void setClockOutTime(String clockOutTime) 
    {
        this.clockOutTime = clockOutTime;
    }

    public String getClockOutTime() 
    {
        return clockOutTime;
    }
    
    public void setClockOutLocation(String clockOutLocation) 
    {
        this.clockOutLocation = clockOutLocation;
    }

    public String getClockOutLocation() 
    {
        return clockOutLocation;
    }
    
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("attendanceId", getAttendanceId())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("deptName", getDeptName())
            .append("deptId", getDeptId())
            .append("attendanceDate", getAttendanceDate())
            .append("clockInTime", getClockInTime())
            .append("clockInLocation", getClockInLocation())
            .append("clockOutTime", getClockOutTime())
            .append("clockOutLocation", getClockOutLocation())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
} 